package cn.fl.system.service;

import java.util.List;

import cmm.comm.facade.upload.condition.SysUlDatCfgQueryCondition;
import cmm.comm.facade.upload.dto.resp.AttachmentDataDTO;
import cn.cmm.base.framework.exception.BaseException;
import cn.fl.fileconfig.condition.FileCfgConditonQC;
import cn.fl.project.vo.PrjFileInfoVO;
import cn.fl.system.vo.SysUlDatCfgVO;
import com.alibaba.fastjson.JSONArray;

/**
 * @Description: 上传资料配置表 客户端服务层接口
 * 业务层方法名称前缀：
 * 新增：add*
 * 删除：remove*
 * 修改：modify*
 * 批量：batch*
 * 查询对象：select* get*
 * 查询集合：search*
 */
public interface ISysUlDatCfgService {

    /**
     * 获取唯一对象
     *
     * @param id 主键
     * @return 对象DTO
     */
    public SysUlDatCfgVO selectById(Long id) throws BaseException;

    /**
     * 新增
     *
     * @param entity
     * @return
     */
    public Long add(SysUlDatCfgVO entity) throws BaseException;

    /**
     * 删除
     * @param id
     * @return
     */
    //public boolean removeById(Long id)throws BaseException;

    /**
     * 批量删除
     *
     * @param ids
     * @return
     */
    public boolean removeByIds(List<Long> ids) throws BaseException;

    /**
     * 修改
     *
     * @param entity
     * @return
     */
    public boolean modify(SysUlDatCfgVO entity) throws BaseException;

    /**
     * 分页查询所有
     * @param page
     * @return
     */
    //public Pager searchListPage(Pager page)throws BaseException;

    /**
     * 不分页查询所有
     *
     * @param page
     * @return
     */
    public List<SysUlDatCfgVO> searchList(SysUlDatCfgQueryCondition condition) throws BaseException;

    /**
     * @description: 通过规则引擎获取附件模版及上传资料
     * @methodName searchFileCfgList
     * @author: wangpengtao@lionbridgecapital.cn
     * @createDate: 2019/6/12 16:01
     * @version: V1.0.0
     * @param: fileCfgConditonQC
     * @Return java.util.List<fl.lcv.app.upload.vo.SysUlDatCfgVO>
     * @updateRemark [序号][YYYY-MM-DD] [更改人姓名][变更描述]
     */
    public List<PrjFileInfoVO> searchFileCfgList(FileCfgConditonQC fileCfgConditonQC, String isShowSts);

    /**
     * @MethodName getAttachmentFile
     * @Description: 获取配置附件信息
     * @Author: wangpengtao@lionbridgecapital.cn
     * @CreateDate: 2019/6/21 11:35
     * @Version: V1.0.0
     * @Param fileCfgConditonQC
     * @Return java.util.List<cmm.comm.facade.upload.dto.resp.AttachmentDataDTO>
     * @UpdateRemark [序号][YYYY-MM-DD] [更改人姓名][变更描述]
     */
    public List<AttachmentDataDTO> getAttachmentFile(FileCfgConditonQC fileCfgConditonQC);

}
